Evolving Software Systems for Self-Adaptation
نویسنده
چکیده
There is a strong synergy between the concepts of evolution and adaptation in software engineering: software adaptation refers to both the current software being adapted and to the evolution process that leads to the new adapted software. Evolution changes for the purpose of adaptation are usually made at development or compile time, and are meant to handle predictable situations in the form of software change requests. On the other hand, software may also change and adapt itself based on the changes in its environment. Such adaptive changes are usually dynamic, and are suitable for dealing with unpredictable or temporary changes in the software’s operating environment. A promising solution for software adaptation is to develop self-adaptive software systems that can manage changes dynamically at runtime in a rapid and reliable way. One of the main advantages of self-adaptive software is its ability to manage the complexity that stems from highly dynamic and nondeterministic operating environments. If a selfadaptive software system has been engineered and used properly, it can greatly improve the cost-effectiveness of software change through its lifespan. However, in practice, many of the existing approaches towards self-adaptive software are rather expensive and may increase the overall system complexity, as well as subsequent future maintenance costs. This means that in many cases, self-adaptive software is not a good solution, because its development and maintenance costs are not paid off. The situation is even worse in the case of making current (legacy) systems adaptive. There are several factors that have an impact on the cost-effectiveness and usability of self-adaptive software; however the main objective of this thesis is to make a software system adaptive in a cost-effective way, while keeping the target adaptive software generic, usable, and evolvable, so as to support future changes. In order to effectively engineer and use self-adaptive software systems, in this thesis we propose a new conceptual model for identifying and specifying problem spaces in the context of self-adaptive software systems. Based on the foundations of this conceptual model, we propose a model-centric approach for engineering self-adaptive software by designing a generic adaptation framework and a supporting evolution process. This approach is particularly tailored to facilitate and simplify the process of evolving and adapting current (legacy) software towards runtime adaptivity. The conducted case studies reveal the applicability and effectiveness of this approach in bringing self-adaptive behaviour into non-adaptive applications that essentially demand adaptive behaviour to sustain.
منابع مشابه
Infrastructure for Making Legacy Systems Self-Managed
Software systems that are successfully deployed and used seem to always have a longer lifetime than was originally expected. It is also common knowledge that the cost of maintaining and evolving those systems during that lifetime dwarf the initial cost of creating the system. This makes support for self-management in the legacy software arena all that much more important. We are building an inf...
متن کاملRuntime Evolution of Highly Dynamic Software
Highly dynamic software systems are applications whose operations are particularly affected by changing requirements and uncertainty in their execution environments. Ideally such systems must evolve while they execute. To achieve this, highly dynamic software systems must be instrumented with self-adaptation mechanisms to monitor selected requirements and environment conditions to assess the ne...
متن کاملRequirements-Driven Supervision of Socio-Technical Systems
Modern software systems are characterized by ever-changing goals and requirements. Such systems operate in an environment that is dynamic, open, partly known, unpredictable. New goals arise and others are dropped, due to changes in stakeholders’ needs and priorities, government regulations, technology. Despite this dynamism, systems should meet their goals and comply with the evolving requireme...
متن کاملReport from the GI Dagstuhl Seminar 14433: Software Engineering for Self-Adaptive Systems
Nowadays, software has become a key feature and driver for innovation of a wide range of products and services such as business applications, vehicles, or devices in various domains such as transportation, communication, energy, production, or health. Consequently, our daily lives highly depend on such software-intensive systems. This results in complex systems, which is even more stressed by i...
متن کاملProcess Adaptation for Human-Computer Interaction
This paper introduces the concept of “process adaptation” as a human-computer interaction (HCI) approach which differs from the currently used HCI approaches in considering the humans and the computers as part of one holistic system. The society as a social system is viewed, from “process adaptation” perspective, as comprising two co-evolving subsystems: · a human-subsystem, considered in sense...
متن کامل